import Vue from 'vue'
import App from './App.vue'
import router from './router'
//引入antd
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import { message } from 'ant-design-vue';

//引入axios
import axios from 'axios';
import VueAxios from 'vue-axios';

//引入自定义接口地址
import urls from './config/urls';


Vue.config.productionTip = false


//axios 拦截器
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    //获取token
    const token = localStorage.getItem('base_admin_token');
    if (token) {
      //设置Authorization请求头
      config.headers.Authorization = token
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    //响应数据
    const data = response.data;
    //data.code = 401;
    if (data.code === 401) {
        //避免重复切换
        //console.log(router, '路由.....');
        //路由跳转  跳转地址相同会报错,所以捕获一下
        router.push({path: '/login'}).catch(err => {
          console.log(err)
        });
    }
    //501 节点不存在
    if (data.code === 501) {
        message.error(data.msg);
        return;
    }
    //错误提示
    if(data.code !== 200){
        message.error(data.msg);
        return;
    }
    return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});



//全局引入
Vue.use(Antd);
Vue.use(VueAxios,axios);

//设置到vue全局属性
Vue.prototype.urls = urls.urls;

//创建vue 并 使用路由将路由挂载到app 组件
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
